

const Event = require('./05-event.js')

class Dog extends Event{
  #name;
  #energy = 0;
  #timer = null;

  constructor(name,energy){
    super();
    this.#name = name;
    this.#energy = energy;
    this.startTimer();
  }


  get name(){
    return this.#name;
  }
  get energy(){
    return this.#energy;
  }
  setEnergy(e){
    this.#energy = e;
    this.startTimer();
  }

  startTimer(){
    if(this.#timer !== null) return;
    this.#timer = setInterval(()=>{
      if(this.energy > 0){
        this.emit('bark');
        this.#energy--;
      }else{
        clearInterval(this.#timer);
        this.#timer = null;
      }
    },1000);
  }
}

module.exports = Dog
